/**
 * ./permission.ts
 * @description 路由守卫
 */
import useUserStore from "./store/modules/user";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
import router from "./router";
NProgress.configure({ showSpinner: false }); // 显示右上角螺旋加载提示

router.beforeEach((to, from, next) => {
    NProgress.start(); //开启进度条
    /**
     * 路由守卫待完善
     * 获取用户信息，若没有则获取用户信息
     */
    if (useUserStore().roles.length === 0) {
        useUserStore()
            .getInfo()
            .then((res: any) => {
                //这里可以写动态路由的判断，目前待完善
                if (res.status === 200) {
                    NProgress.done();
                    next();
                }
            })
            // 若在获取用户信息时发生错误，
            .catch(async err => {
                // 做退出登录操作，并跳转到登录页面
            });
    } else {
        next();
    }
});

router.afterEach(() => {
    NProgress.done(); //完成进度条
});
